#pragma once


namespace Be
{
	class SampleComponent;
}

namespace Be
{
	class SampleNode
		: public Node
	{
	public:
		struct Seed
		{
		};

	public:
		SampleNode(Entity* p_pEntity);
		virtual ~SampleNode();

	private:
		ComPtr<SampleComponent> m_pSampleComponent;

	private:
		friend class SampleSystem;
	};
}

namespace Be
{
	class SampleSystem
		: public System<SampleNode>
	{
	private:
		SampleSystem();
		virtual ~SampleSystem();

	public:
		static SampleSystem& Inst();

	protected:
		virtual void OnRegister(SampleNode* p_pNode, const SampleNode::Seed& p_rSeed);
		virtual void OnUnregister(SampleNode* p_pNode);
		virtual void OnUpdate(SampleNode* p_pNode);

	private:
	};
}